var appPath = getAppPath();

$(function() {
	$("#queryTypeS").combobox({
		data:[{'type_id':0,'name':'不限'},{'type_id':1,'name':'有父类'},{'type_id':2,'name':'无父类'}],
		valueField : 'type_id',
		textField : 'name',
		onLoadSuccess:function(){
			$("#queryTypeS").combobox('select',0).combobox('enable');
		},
		onSelect:function(sel){
			var typeId=sel.type_id;
			if(typeId==1||typeId==0){
				$("#queryTypeL").combobox({
					url:appPath+"/itbBackFuncInfo/getParentInfo.action?difId=1",
					valueField : 'func_id',
					textField : 'name',
					onLoadSuccess:function(){
						$("#queryTypeL").combobox('select',-1).combobox('enable');
					}
				});
			}else{
				$("#queryTypeL").combobox('disable',"不限");
			}
		}
	});
	$("#queryTypeM").combobox({
		data : [{type_id:0,type_name:'不限'}, {type_id : 10,type_name : '后台管理人员'},{type_id : 20,type_name : '设计师'}],
		valueField : 'type_id',
		textField : 'type_name',
		onLoadSuccess:function(){
			$("#queryTypeM").combobox('select',0).combobox('enable');
		}
	});
	initfuncGrid();
});

/**初始化 加载数据
 */
function initfuncGrid() {
	$('#funcGrid').datagrid({
		url : appPath + "/itbBackFuncInfo/pageListBackFuncInfo.action",
		height : 'full',
		striped : true,
		fitColumns : true,
		queryParams : getQueryParam(),
		singleSelect : false,
		selectOnCheck : true,
		checkOnSelect : true,
		frozenColumns : [[{field : 'ck',checkbox : 'true',width : 10,align : 'center',sortable : false}]],
		columns : [[{field : 'func_id',title : '功能ID:',width : 35,align : 'center',sortable : false,}, 
		   {field : 'parent',title : '父类',width : 40,align : 'center',sortable : false,
				formatter : function(value, rowData, rowIndex) {
					return value||'<span style="color:#FF6347;">暂无</span>';
				}
		}, 
		{field : 'func_type',title : '功能分类',width : 40,align : 'center',sortable : false,
				formatter : function(value, rowData, rowIndex) {
					var ret ='<span style="color:red">未知</span>';
					switch(Number(value||'0')){
					case 0:
						ret=ret;
						break;
					case 10:
						ret='<span style="color:green">后台管理员</span>';
						break;
					case 20:
						ret='<span style="color:green">产品设计师</span>';
						break;
					}
				return ret;
				}
			}, 
			{field : 'name',title : '功能名称',width : 50,align : 'center',sortable : false,
				formatter : function(value, rowData, rowIndex) {
				return value || '<span style="color:red">未知</span>';
				}
			},
			{field : 'url',title : '页面链接',width : 40,align : 'center',sortable : false,
				formatter : function(value, rowData, rowIndex) {
					return value || '<span style="color:#8B8B83;">无链接</span>';
				}
			},
			{field : 'desc',title : '功能描述',width : 90,align : 'left',sortable : false,
			formatter : function(value, rowData, rowIndex) {
				return value || '<span style="color:red>暂无描述</span>"';
				}
			},
			{field : 'order',title : '排序',width : 25,align : 'left',sortable : false,
				formatter : function(value, rowData, rowIndex) {
					if(rowData.order>0){
						return '<a href="javascript:void(0)" onclick="orderSort('+rowData.func_id+','+value+')" style="color:#436EEE;">'+value+'</a>';
					}else{
						return '<a href="javascript:void(0)" onclick="orderSort('+rowData.func_id+','+0+')" style="color:#436EEE;">0</a>';
					}
				}
			},
			{field : 'edit',title : '编辑',width : 25,align : 'center',sortable : false,
			formatter : function(value, rowData, rowIndex) {
				return '<a href="javascript:void(0)" onclick="showDetail('+rowData.func_id+')">修改</a>';
				}
			}, 
			{field : 'create_time',title : '创建时间',width : 55,align : 'center',sortable : false}, 
			{field : 'update_time',title : '更新时间',width : 50,align : 'left',sortable : false}]],
		hideColumn : [ 'user_type' ],
		pagination : true,
		rownumbers : true,
		toolbar : [ {
			text : '新建功能信息',
			iconCls : 'icon-add',
			handler : function() {
				addFuncInfo();
			}
		}, {
			text : '删除功能信息',
			iconCls : 'icon-cancel',
			handler : function() {
				delFuncInfo();
			}
		}]
	});
}

/**显示顺序*/
function orderSort(id,number){
	$("#funcId").val(id);
	$("#order").val(number);
	$("#funcBtn").show();
	$('#funcOrder').window({
		title:'显示顺序设定',
		iconCls:'icon-edit',
		modal: true,
		shadow: true,
		collapsible:false,
		minimizable:false,
		maximizable:false
	});
	$('#funcOrder').window('move',{top:20,left:100});
	$('#funcOrder').window('open');
}

/**取消修改顺序
 */
function cancelUpOrder(){
	$('#funcOrder').window('close');
}

/**确认修改顺序*/
function doUpOrder(){
	var id = $("#funcId").val();
	var number = $("#order").val();
	if(!number || number.length == 0 || Number(number)>999 || Number(number)<=0){
		$.messager.alert('提示信息','有效数值范围为：1～999','warning');
		return;
	}
	if(!id ||id.length <= 0){
		$.messager.alert('error','请联系管理员,系统故障','warning');
		return;
	}
	var	 url = appPath +"/itbBackFuncInfo/updBackFuncInfo.action";;
	var sendData={
			"backFuncDto.func_id":id||'',
			"backFuncDto.order":number||''
	};
	$.post(url,sendData,function(data){
		if(data=="ok"){
			$.messager.alert('提示信息','顺序更新成功！','info',function(){
				$('#funcOrder').window('close');
				doQuery();
			});
		}else {
			$.messager.alert('提示信息','顺序更新失败','warning');
		}
	});
}


function addFuncInfo() {
	$("#editTable").show();
	$('#editForm').form('clear');
	$("#funcId").val('');
	$("#editTypeL").combobox('enable');
	$("#editTypeM").combobox('enable');
	$("#editTypeL").combobox({
				url:appPath+"/itbBackFuncInfo/getParentInfo.action?difId=2&funcId=0",
				valueField : 'func_id',
				textField : 'name',
				onLoadSuccess:function(){
					var dataL = $('#editTypeL').combobox('getData');
					if(dataL && dataL.length>0){
						$("#editTypeL").combobox('select',0).combobox('enable');
					}
				}
			});
	$("#editTypeM").combobox({
		data : [ {type_id : 10,type_name : '后台管理员'},{type_id : 20,type_name : '设计师'}],
		valueField : 'type_id',
		textField : 'type_name',
		value:10
	});
	$("#editBtn").show();
	$('#editDlg').window({
		title : '新建功能信息',
		iconCls : 'icon-edit',
		modal : true,
		shadow : true,
		collapsible : false,
		minimizable : false,
		maximizable : false
	});

	$('#editDlg').window('move', {
		top : 20,
		left : 20
	});
	$('#editDlg').window('open');
}

// 确认提交编辑
function doEdit() {
	var funcId = $("#funcId").val();
	var parent = $("#editTypeL").combobox('getValue');
	var funcType = $("#editTypeM").combobox('getValue');
	var desc = $("#editDesc").val();
	var name = $("#editName").val();
	var furl=$("#editUrl").val();

	console.log(parent);
	if (parent && Number(parent || '0') >=0 &&Number(funcType||'0')>0) {
		if (desc && desc.length > 0&&name.length>0) {
				var	 url=appPath + "/itbBackFuncInfo/addBackFuncInfo.action";// 新建
			if (Number(funcId || '0') > 0) {
				var	 url = appPath +"/itbBackFuncInfo/updBackFuncInfo.action";// 修改
			}
			var sendData = {
				"backFuncDto.func_id" : funcId || "",
				"backFuncDto.parent" : parent || "",
				"backFuncDto.func_type" : funcType || "",
				"backFuncDto.name" : name || "",
				"backFuncDto.url" : furl || "",
				"backFuncDto.desc" : desc || ""
			};
			$.post(url, sendData, function(data) {
				if (data == "ok") {
					$.messager.alert('提示信息', '提交成功', 'info');
					$('#editDlg').window('close');
					doQuery();
				} else if (data == "exit") {
					$.messager.alert('提示信息', '分类已存在', 'info');
				} else {
					$.message.alert("提示信息", "提交失败", 'info');
				}
			});
		} else {
			$.messager.alert('提示信息', '请填写功能分类', 'info');
		}
	}else{
		$.messager.alert('提示信息', '请填写顶级父类', 'info');
	}
}

function cancelEdit() {
	$('#editDlg').window('close');
}

/**展示单个信息详情 用于修改
 */
function showDetail(id) {
	$("#editTable").show();
	$('#editForm').form('clear');
	$("#funcId").val(id);
	$("#editTypeL").combobox('enable');
	$("#editTypeM").combobox('enable');
	// 加载数据
	var url = appPath + "/itbBackFuncInfo/getOneBackFuncInfo.action?id="+id;
	$.get(url,function(ret) {
		if (ret && ret.length > 0) {
				var info = ret[0];
				$("#editDesc").val(info.desc || '');
				$("#editName").val(info.name||'');
				$("#editUrl").val(info.url||'');
				$("#editTypeL").combobox({
					url:appPath+"/itbBackFuncInfo/getParentInfo.action?difId=2&funcId="+id,
					valueField : 'func_id',
					textField : 'name',
					onLoadSuccess:function(){
						var dataL = $('#editTypeL').combobox('getData');
						if(dataL && dataL.length>0){
							var indx=info.parent;
							if(indx==null){
								indx=0;
							}
							$("#editTypeL").combobox('select',indx).combobox('enable');
						}
					}
				});
				$("#editTypeM").combobox({
					data : [ {type_id : 10,type_name : '后台管理员'},{type_id : 20,type_name : '设计师'}],
					valueField : 'type_id',
					textField : 'type_name',
					value:info.func_type
				});
		}
		});
		$("#editBtn").show();
		$('#editDlg').window({
			title : '角色编辑',
			iconCls : 'icon-edit',
			modal : true,
			shadow : true,
			collapsible : false,
			minimizable : false,
			maximizable : false
		});
	
		$('#editDlg').window('move', {
			top : 20,
			left : 20
		});
		$('#editDlg').window('open');
}

function cancelUpdTmpl() {
	$('#tmplDlg').window('close');
}

/**
 * 删除功能信息
 */
function delFuncInfo() {
	var funId = $("#funcGrid").datagrid("getChecked");
	if (!funId || funId.length == 0) {
		$.messager.alert('提示信息', '请选择需要删除的内容！', 'warning');
		return;
	}
	$.messager.confirm("确认", "将删除该ID下的所有子类，是否确认？", function(r) {
		if (r) {
			var ids = "";
			$.each(funId, function(index, item) {
				ids = ids + item.func_id + ",";
			});
			ids = ids.substr(0, ids.length-1)//提取字符串
			var url = appPath + "/itbBackFuncInfo/delBackFuncInfo.action?ids="+ ids;
			$.post(url, function(data) {
				if (data == "ok") {
					$.messager.alert('提示信息', '删除成功', 'info');
					doQuery();
				} else {
					$.messager.alert('提示信息', '删除失败', 'info');
				}
			});
		}
	});
}

/**获取请求信息
 */
function getQueryParam() {
	var queryObject = {};
	var findTypeL = $("#queryTypeL").combobox('getValue');
	var findTypeM = $("#queryTypeM").combobox('getValue');
	var findTypeS = $("#queryTypeS").combobox('getValue');
	var desc = $("#queryFuncDesc").val();
	if (findTypeL && Number(findTypeL || '0') >= 0)
		queryObject.findFuncTypeL = findTypeL;
	if (findTypeM && Number(findTypeM || '0') >0)
		queryObject.findFuncTypeM = findTypeM;
	if(findTypeS)
		queryObject.findFuncTypeS = findTypeS;//这是区分 是否有父类
	if (desc && desc.length > 0)
		queryObject.findDesc = desc;
	return queryObject;
}


/**查询数据*/
function doQuery(startFlg) {
	$("#funcGrid").datagrid('unselectAll');
	if (startFlg == 1) {
		$("#funcGrid").datagrid('load', getQueryParam());
	} else {
		$("#funcGrid").datagrid('reload', getQueryParam());
	}
}

function fmtCreateTime(value, rowData, rowIndex) {
	if (!value)
		return "";
	var s = new Date(value);
	return rowData.create_time = $.DateUtil.format(s, 'yyyy/MM/dd hh:mm:ss');
}
